package last.fillblank;

public class Factory {// 工厂类

    private String name;// 定义字符串类型的私有变量name，代表工厂的名字

    public Factory(String name) {
        this.name = name;
    }

    public Bread build() {// 工厂生产面包方法

        class FactoryBread extends Bread {// 定义局部内部类FactoryBread，继承Bread类
            public String info() {// 重写父类info方法，重新介绍面包
                return name + "生产的" + super.info();// 扩展性重写父类的介绍信息，要使用到本类的name属性和父类的info方法
            }
        }
        return new FactoryBread();
    }

    public static void main(String[] args) {
        Factory factory = new Factory("达利园");// 创建工厂对象
        Bread bread = factory.build();// 生产面包
        System.out.println(bread.info());// 使用bread对象，调用info方法，打印面包的介绍信息
    }
}

class Bread {// 面包类
    public String info() {// 面包的介绍信息
        return "美味的面包";
    }
}
